/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wwcontrolserver.controls;

import java.util.ArrayList;
import wwcontrolserver.datarecorders.WWControlServerLogger;

/**
 *
 * @author Michael Ferry
 */
public abstract class AbstractControl {

    protected AbstractControlState ControlState;
    protected final WWControlServerLogger WWCSLog;
      
    public AbstractControl(AbstractControlState ControlState, WWControlServerLogger WWCSLog){

        this.ControlState = ControlState;     
        this.WWCSLog = WWCSLog;
        
    }
    public int GetControlID(){
        return ControlState.GetControlID();
    }
    public String GetControlName(){
        return ControlState.GetControlName();
    }
    public boolean GetCentralTimerNotificationState(){
        return ControlState.GetCentralTimerNotificationState();
    }
    
//    public abstract void SetCentralTimerNotification(boolean CentralTimerNotificationState){
//        this.NotifyUsingCentralTimer = CentralTimerNotificationState;
//    }
//    public abstract boolean GetCentralTimerNotificationState(){
//        return NotifyUsingCentralTimer;
//    }
    public abstract void SetControlState(AbstractControlState ControlState) throws Exception;
    public abstract AbstractControlState GetControlState();
    public abstract void NotifyControl();
    
    public abstract ArrayList<ControlKey> GetListOfControlKeys();
    public abstract void ShutdownControl();

}
